<?php
namespace DuxCms\Model;
use Think\Model;
/**
 * 广告操作
 */
class AdModel extends Model {
    //完成
    protected $_auto = array (
        array('title','strip_tags',3,'function'),
        array('image','strip_tags',3,'function'),
        array('url','strip_tags',3,'function'),
        array('order','intval',3,'function'),
    	array('status','intval',3,'function'),
    	array('position','formatPosition',3,'callback'), //推荐
    	array('ctime','time',1,'function'),
    	array('mtime','time',3,'function')
     );
    //验证
    protected $_validate = array(
        array('title','1,50', '标题只能为1~50个字符', 1 ,'length'),
    	array('url','url', '图片地址错误', 1 ,'regex'),
        array('image','1,200', '图片必须', 1 ,'length'),
    );
    /**
     * 获取列表
     */
    public function loadList($where,$limit,$order){
    	$list = $this->where($where)
                    ->limit($limit)
                    ->order($order)
                    ->select();
    	return $list;
    }
    
 	/**
     * 更新信息
     * @param string $type 更新类型
     * @return bool 更新状态
     */
    public function saveData($type = 'add'){
        $data = $this->create();
        if(!$data){
            return false;
        }
        if($type == 'add'){
            return $this->add($data);
        }
        if($type == 'edit'){
            if(empty($data['id'])){
                return false;
            }
            $status = $this->save();
            if($status === false){
                return false;
            }
            return true;
        }
        return false;
    }
    
    /**
     * 格式化推荐位
     * @return string 推荐ID
     * #TODO 优化为公共函数
     */
    public function formatPosition(){
    	$position = I('post.position');
    	if(!empty($position)){
    		return implode(',', $position);
    	}else{
    		return ;
    	}
    }
    
	/**
     * 获取信息
     * @param int $id
     * @return array 信息
     */
    public function getInfo($id)
    {
        $map = array();
        $map['id'] = $id;
        $info = $this->where($map)->find();
        if(empty($info)){
            $this->error = '广告不存在！';
        }
        return $info;
    }
    
    /**
     * 删除信息
     * @param int $id
     * @return bool 删除状态
     */
    public function delData($id)
    {
    	$map = array();
    	$map['id'] = $id;
    	$status = $this->where($map)->delete();
    	return $status;
    }
}
